package com.hskn.hss.module.rptEmployeeWork.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.util.Date;

/**
 * <p>
 *
 * </p>
 *
 * @author hskn
 * @since 2021-05-21
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class RptEmployeeWork implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.ASSIGN_UUID)
    private String id;

    /**
     * 人员id
     */
    private String employeeId;
    /**
     * 车牌号
     */
    private String employeeName;
    /**
     * 计划ID
     */
    private String planId;
    /**
     * 计划名称
     */
    private String planName;
    /**
     * 网格ID
     */
    private String gridId;
    /**
     * 网格名称
     */
    private String gridName;
    /**
     * 班组ID
     */
    private String groupId;
    /**
     * 班组名称
     */
    private String groupName;
    /**
     * 规则ID
     */
    private String ruleId;
    /**
     * 规则名称
     */
    private String ruleName;
    /**
     * 排班日期
     */
    private String workDate;
    /**
     * 排班月份
     */
    private String workMonth;
    /**
     * 排班开始时间
     */
    private Date planStartTime;
    /**
     * 排班结束时间
     */
    private Date planEndTime;
    /**
     * 工作开始时间
     */
    private Date workStartTime;
    /**
     * 工作结束时间
     */
    private Date workEndTime;
    /**
     * 状态：0未开始；1进行中；2未完成：考勤时间结束，未完成作业；3考勤时间结束，已完成作业
     */
    private Integer status;
    /**
     * 计划总进度
     */
    private Integer allProgress;
    /**
     * 当前进度，同总进度
     */
    private Integer nowProgress;
    /**
     * 是否迟到
     */
    private Integer isLaterIn;
    /**
     * 是否旷工
     */
    private Integer isNoWork;
    /**
     * 是否早退
     */
    private Integer isLeaveEarly;
    /**
     * 创建时间
     */
    private Date createTime;
    /**
     * 更新时间
     */
    private Date updateTime;
    /**
     * 是否早退
     */
    private Integer inSignType;
    /**
     * 是否早退
     */
    private Integer outSignType;

    private Integer completePercent;

    public RptEmployeeWork() {
    }

    public RptEmployeeWork(String employeeId, Date planStartTime) {
        this.employeeId = employeeId;
        this.planStartTime = planStartTime;
    }

    /**
     * 班次ID
     */
    private String shiftId;
    /**
     * 班次名称
     */
    private String shiftName;
    /**
     * 打卡地点
     */
    private String punchCardAddress;
    /**
     * 部门Id
     */
    private String depId;

    @TableField(exist = false)
    private String punchCardStartTime;

    @TableField(exist = false)
    private String punchCardEndTime;

    /**
     * 总点位数
     */
    private Integer allPointsNum;
    /**
     * 完成点位数
     */
    private Integer overPointsNum;
    /**
     *  完成的点位Id
     */
    private String overPointsId;
}
